import { Module, forwardRef } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { MenusService } from "./menus.service";
import { MenusController } from "./menus.controller";
import { Menus } from "./menu.entity";
import { LogsModule } from "../logs/logs.module";

/**
 * 菜单模块 (MenusModule)
 *
 * 负责菜单管理相关的功能模块
 * 包含菜单的CRUD操作、权限控制等功能
 */
@Module({
  /**
   * 导入其他模块
   * - TypeOrmModule.forFeature([Menus]): 注册Menu实体的Repository
   * - LogsModule: 导入日志模块，用于记录操作日志
   */
  imports: [TypeOrmModule.forFeature([Menus]), forwardRef(() => LogsModule)],

  /**
   * 模块内的服务提供者
   * MenusService: 菜单业务逻辑服务
   */
  providers: [MenusService],

  /**
   * 模块内的控制器
   * MenusController: 处理菜单相关的HTTP请求
   */
  controllers: [MenusController],

  /**
   * 导出服务供其他模块使用
   * 导出MenusService以便其他模块可以注入使用
   */
  exports: [MenusService],
})
export class MenusModule {}
